How To Enable Non-Market apps for Captivate
Credit goes to max_warheads member on http://forum.xda-developers.com. Ok, we do have a WHOLE other thread that was made a sticky already, but you need to read the WHOLE thing to get all the properly interesting parts. I'll make sure I keep this OP up to date. The following methods enable side loading and installing of apps onto the captivate, without the need of a program on a computer attached via the SDK. There are multiple methods, and for the most part, these methods that have worked flawlessly for many users here on this forum. We're just collecting them all in one post for speed and clarity. Methods that assist in loading applications, without modification to the settings (a.k.a still need a computer attached) can be found at the collective wiki, http://samsungcaptivate.wikia.com/wiki/How_to_Sideload ALL METHODS REQUIRE ROOT & BUSYBOX: Root your phone, see http://forum.xda-developers.com/showthread.php?t=725555 Busybox : http://www.appbrain.com/app/stericson.busybox Please, save a clean, un-altered backup copy of this file. To be safe. Rarely does corruption occur, but if it does, it won't be good. Method 1: From Win7x64, Samsung Drivers, Android SDK installed. This method uses the tools you already have at hand, as part of the SDK. All instances in code blocks are run inside of the command prompt. You will need to know where you installed your SDK, and the tools directory therein. Once rooted, go install BusyBox installer from the App Market/AppBrain etc and run it. It will download and install the latest version for you. From my Win7x64, with USB Debugging ON. Ensure that you phone is UNLOCKED as it the SU app will ask for permission for 'UNKOWN' in the following command. Connect to PC, and Eject/Safely Remove the SD card, and "Turn off USB Storage" on the phone. open command prompt, follow along: Code: > c: > cd \android\tools > adb shell $ su # cp /dbdata/databases/com.android.providers.settings/settings.db /sdcard/settings.db # exit $ exit mount the SD cards to the pc, "USB Connected select to... ", Mount mine mounted as H: Code: > copy H:\settings.db settings.db > sqlite3 settings.db ~> update secure set value="1" where name="install_non_market_apps"; 1 row updated ~> .quit > copy settings.db H:\settings.db Eject the drive, safely remove, etc. "Turn off USB storage" etc, to mount it back to the phone Code: > adb shell $ su # cp /sdcard/settings.db /dbdata/databases/com.android.providers.settings/settings.db # chmod 660 /dbdata/databases/com.android.providers.settings/settings.db # chown system.system /dbdata/databases/com.android.providers.settings/settings.db # exit $ exit > adb reboot Bam. Done. Method 2: with Root Explorer (courtesy of kirbo20) This is a pretty easy process. I went in to Root Explorer - dbdata - databases - com.android.providers.settings, copied settings.db to my sd card, edited it on my pc with a db editor changed 0 to a 1 next to non market apps. Copied it back to the original directory, rebooted and installed a non market app. (added by gotfolk) again using FF plug in.. Click Secure on the left pane click on install_non_market_apps click edit number 3 states value click there and type in 1. hit ok (/gotfolk) Please use caution. If you want to make sure the db save properly open it on your sd card before you copy and replace the original. It should open up as a readable table. If it opens up in a txt editor its corrupt. This permanently enables non market apps. You can not toggle it on and off. ( This is a sqlite3 database file, you can find many GUI editors that will be able to handle the editing, including a FF plugin. Search "SQLite" ) Method 3: with Root Explorer & Sqlite Editor & Terminal Emulator (courtesy of ice3186) - Open Root Explorer - Browse to /dbdata/databases/com.android.providers.settings/ - copy settings.db to the root of your sd card ( /sdcard/ ) - Click on the newly copied settings.db in /sdcard/, with SQLite Editor installed, you can open and edit it here. - Select the "secure" table, and update the value of 'install_nonmarket_apps' from 0 to 1, and save. - close out of SQLite editor - copy the modified file ( /sdcard/settings.db ), and browse back to /dbdata/databases/com.android.providers.settings/ and paste - confirm the overwrite if asked and then open again to confirm it's been changed. - open Terminal Emulator Code: $ su # chmod 660 /dbdata/databases/com.android.providers.settings/settings.db # chown system.system /dbdata/databases/com.android.providers.settings/settings.db # reboot - reboot phone. No PC, no Mac, no drivers, no SDK. Viola. Method 4: Mac & Android SDK You will see "sdcard" through this method...I don't own a Mac so I'm guessing a bit. This method uses the tools you already have at hand, as part of the SDK. All instances in code blocks are run inside of the Terminal. You will need to know where you installed your SDK, and the tools directory therein. Once rooted, go install BusyBox installer from the App Market/AppDroid etc and run it. It will download and install the latest version for you. From a Max OS X, with USB Debugging ON. Ensure that you phone is UNLOCKED as it the SU app will ask for permission for 'UNKOWN' in the following command. Connect to Mac, and Eject/Safely Remove the SD card, and "Turn off USB Storage" on the phone. open Terminal, follow along: Code: > cd /android/tools > ./adb shell $ su # cp /dbdata/databases/com.android.providers.settings/settings.db /sdcard/settings.db # exit $ exit mount the SD cards to the Mac, "USB Connected select to... ", Mount mine mounted as sdcard Code: > cp sdcard/settings.db settings.db > ./sqlite3 settings.db ~> update secure set value="1" where name="install_non_market_apps"; 1 row updated ~> .quit > cp settings.db sdcard/settings.db Eject the drive, safely remove, etc. "Turn off USB storage" etc, to mount it back to the phone Code: > ./adb shell $ su # cp /sdcard/settings.db /dbdata/databases/com.android.providers.settings/settings.db # chmod 660 /dbdata/databases/com.android.providers.settings/settings.db # chown system.system /dbdata/databases/com.android.providers.settings/settings.db # exit $ exit > ./adb reboot Method 5: Android SDK only Of course, this also requires root and BusyBox. From the android sdk tools folder in a command prompt: note: all linux/mac should use './adb' in place of just 'adb' Code: adb shell su chmod 666 /dbdata/databases/com.android.providers.settings/settings.db exit exit adb pull /dbdata/databases/com.android.providers.settings/settings.db settings.db echo update secure set value = 1 where name = 'install_non_market_apps';|sqlite3 settings.db adb push settings.db /dbdata/databases/com.android.providers.settings/settings.db adb shell su chmod 660 /dbdata/databases/com.android.providers.settings/settings.db chown system.system /dbdata/databases/com.android.providers.settings/settings.db reboot NOTICE You must chown the settings.db file and reboot once it is back in its original location. If you do not, you will not be able to alter settings such as WiFi,GPS, default Ringtones, etc. It's also highly likely that you may wish to chmod to 660 (-rw-rw---), so I've tacked that in here and above. Code: > adb shell $ su # chmod 660 /dbdata/databases/com.android.providers.settings/settings.db # chown system.system /dbdata/databases/com.android.providers.settings/settings.db # exit $ exit > adb reboot Absolutely do not use someone else's settings.db unless you specifially make it a point replace android_id with your android_id! Special Note Any of these adb comments can be run from Terminal Emulator (Android Terminal Emulator, free) from the su command. I use the ADB here as it is a lot easier to type into. Terminal Emulator will provide you with a shell that is an exact match of the 'adb shell' command, as they both simply provide the shell to you. Result: After completing this process you will be able to load non-market apps directly from the APK files, SDK tools, tools such as DroidExplorer and apps such as APKtor. You will be able to download the APKs directly, and then install from your favorite file browser (e.g. MyFiles(s), Astro(f), RootExplorer($)...) Application links Root Explorer http://www.appbrain.com/app/com.spee...e.rootexplorer SQLite Editor http://www.appbrain.com/app/com.speedsoftware.sqleditor Terminal Emulator http://www.appbrain.com/app/jackpal.androidterm BusyBox http://www.appbrain.com/app/stericson.busybox